<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <!-- 创建数组的两种方式 -->
    <script>
        // 1.利用数组字面量
        var arr = [1, 2, 3];
        console.log(arr[0]);

        // 2.利用new Array()
        var arr1 = new Array(2); //2表示数组长度为2，里面2个空的数组元素
        console.log(arr1);

        var arr2 = new Array(2, 3); //等价于[2,3] 里面有2个数组元素 2，3
        console.log(arr2);

        // 检测是否为数组
        // instanceof 可以检测是否为数组
        var arr3 = [];
        console.log(arr3 instanceof Array); //如果为数组返回true 如果不是返回false

        //Array.isArray(参数) 也可以检测是否为数组 H5 新增方法 ie9以上版本支持
        console.log(Array.isArray(arr));


        // 翻转数组
        function reverse(arr) {
            if (arr instanceof Array) {
                var newArr = [];
                for (var i = arr.length - 1; i > 0; i--) {
                    newArr[newArr.length] = arr[i];
                }
                return newArr;
            } else {
                return '这个参数要求必须是数组格式 [1,2,3]'
            }
        }

        // 添加数组元素
        var arr = [1, 2, 3];
        arr.push(4); //push()在数组末尾添加一个或多个元素 参数直接写在（）中，push完毕之后，返回的是新数组的长度 原数组发生变化
        console.log(arr);

        arr.unshift('red'); //unshift()在数组前面添加一个或多个元素 参数直接写在（）中，unshift完毕之后，返回的是新数组的长度 原数组发生变化
        console.log(arr);

        arr.pop(); //删除数组最后一个元素 一次删除一个元素 pop()没有参数，pop完毕之后，返回的是删除的那个元素 原数组发生变化
        console.log(arr);

        arr.shift(); //删除数组最后一个元素 一次删除一个元素 shift()没有参数，shift完毕之后，返回的是删除的那个元素 原数组发生变化
        console.log(arr);
    </script>
</head>

<body>

</body>

</html>